1. 登录服务器
ssh,安全外壳协议,以更安全的方式连接远程服务器。
使用方法:ssh 账号@远程服务器IP
sh
ssh root@172.xx.x.x
ssh协议默认端口号是22,所以要确保服务器防火墙没有禁用该端口。
2. 别名快速登录
记住IP的心智负担很重,特别是在同时期使用多台服务器的情况下。可以通过ssh-config配置文件起别名。
- /etc/ssh/ssh_config 对所用用户生效
- ~/.ssh/config 本用户生效
# 修改ssh ~/.ssh/config
# Host 别名
# HostName 服务器ip
# User 用户名
Host example
HostName xx.xx.x.x
User root
配置后使用ssh example,输入密码后即可连接。
3. 免密登录
使用了别名,但还需要输入密码,现在我们把输入密码的操作也给省略掉。
将自己的公钥 id_rsa.pub 放在远程服务器的 ~/.ssh/authorized_keys。
sh
cat ~/.ssh/id_rsa.pub | ssh user@ip "cat >> ~/.ssh/authorized_keys"
# >> 是续写
# > 是覆盖 所以在authorized_keys已经有公钥的情况下,不要用 > 会覆盖其它公钥
公钥可以通过
ssh-keygen生成
当然,这个操作可以通过工具ssh-copy-id去快速实现。
sh
# 会提示输入密码,成功登录以后无需密码
ssh-copy-id example
# 以后无需密码
ssh example
ssh-copy-id 可以把本地的ssh公钥文件安装到远程主机对应的账户
4. 禁止密码登录
在服务器 /etc/ssh/sshd_config 设置 PasswordAuthentication 为 no 可以禁用密码。更多可以通过 man sshd_config 了解
sh
# /etc/ssh/sshd_config
Host *
PasswordAuthentication no # 禁止密码登录
5. 优化连接体验
在本地 ~/.ssh/config 可以通过一些配置优化连接体验。更多可以通过 man ssh config 了解。
sh
# 编辑 ~/.ssh/config
Host *
# 连接保持活动状态的最常见策略,客户端将等待空闲30秒钟(ServerAliveInterval时间),然后向服务器发送“ no-op null数据包”,并期望响应。
ServerAliveInterval 30
# 如果没有响应,则它将继续尝试上述过程直到6(ServerAliveCountMax)次(180秒)。如果服务器仍然没有响应,则客户端将断开ssh连接
ServerAliveCountMax 6
# 向另一端发送 TCP 保持活动消息。可以避免留下“幽灵”用户并消耗本机/服务器资源。可监控到本机/服务器连接死亡或崩溃,发生后断开连接。
TCPKeepAlive yes
Compression yes # 登录后通讯是否启用压缩